맨위로가기

프로그램 입출력

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

프로그램 입출력(PIO)은 다양한 전송 속도를 갖는 여러 모드로 그룹화된 인터페이스로, 데이터 전송을 위해 CPU의 직접적인 제어를 사용한다. ATA 표준에서 PIO 모드는 모드 0부터 모드 6까지 있으며, 각 모드마다 최대 전송 속도와 최소 사이클 시간이 다르다. PIO 모드는 초기에는 널리 사용되었지만, CPU 오버헤드가 크다는 단점으로 인해 DMA 인터페이스가 개발되었다. PIO 모드 5와 6은 컴팩트 플래시 규격 2.0에서 정의되었으며, 임베디드 시스템이나 FPGA와 같이 고속 전송이 필요하지 않은 경우에 유용하게 사용된다. 일부 장치는 PIO 타이밍과 호환되지 않으며, GL819 칩을 사용하는 샌디스크 SDDR-89 12-in-1 카드 리더의 경우 ATA 및 CF 규격과 다른 타이밍을 보인다.

더 읽어볼만한 페이지

  • 입출력 - 터치 타이핑
    터치 타이핑은 키보드를 보지 않고 손가락 위치를 기억해 타이핑하는 기술로, 효율적인 방법으로 알려져 있으며 꾸준한 연습으로 속도와 정확성을 향상시킬 수 있다.
  • 입출력 - 입력
    입력은 컴퓨터에 정보나 명령을 전달하는 방식으로, 키보드, 마우스, 스캐너, 음성 입력 장치, 게임 컨트롤러 등 다양한 장치를 통해 이루어지며 '가져오다' 또는 '읽어 들이다'와 같은 의미로도 사용된다.
프로그램 입출력
프로그램 입출력
유형프로그램 입출력
인터럽트 구동 입출력
직접 메모리 접근
프로그램 입출력 (PIO)
설명CPU가 소프트웨어를 통해 주변 장치와 직접 데이터를 교환하는 입출력 방식
작동 방식CPU는 주변 장치의 상태 레지스터를 주기적으로 폴링하여 데이터 전송 준비 여부를 확인
데이터 전송 준비가 완료되면, CPU는 입출력 명령어를 사용하여 데이터를 주변 장치와 교환
장점간단한 하드웨어 구조
단점CPU가 데이터 전송을 기다리는 동안 다른 작업을 수행할 수 없어 효율성이 떨어짐
데이터 전송 속도가 CPU 속도에 의해 제한됨
인터럽트 구동 입출력
설명주변 장치가 데이터 전송 준비가 완료되면 CPU에게 인터럽트를 요청하여 데이터를 교환하는 방식
작동 방식CPU는 다른 작업을 수행하는 동안 주변 장치의 인터럽트 요청을 감지
인터럽트가 발생하면, CPU는 현재 작업을 중단하고 인터럽트 서비스 루틴(ISR)을 실행하여 데이터를 주변 장치와 교환
장점CPU가 데이터 전송을 기다리는 동안 다른 작업을 수행할 수 있어 효율성이 향상
단점인터럽트 처리 오버헤드가 발생
하드웨어 구조가 복잡
직접 메모리 접근 (DMA)
설명주변 장치가 CPU의 개입 없이 직접 메모리에 데이터를 읽고 쓰는 방식
작동 방식CPU는 DMA 컨트롤러에게 데이터 전송 시작 주소, 전송 바이트 수 등의 정보를 제공
DMA 컨트롤러는 CPU의 개입 없이 직접 메모리와 주변 장치 간에 데이터를 전송
장점CPU의 부담을 줄여 시스템 전체의 효율성을 향상
단점DMA 컨트롤러와 같은 추가적인 하드웨어 필요
메모리 접근 충돌 문제 발생 가능

2. ATA 표준에서의 PIO 모드

PIO 인터페이스는 서로 다른 전송 속도에 해당하는 여러 가지 모드로 그룹화된다. 각 모드 간의 전기 신호는 유사하지만, 더 높은 전송 속도를 위해 트랜잭션 간의 주기 시간이 감소한다. 모든 ATA 장치는 가장 느린 모드인 모드 0을 지원하며, CPU는 ATA 드라이브의 정보 레지스터에 접근(모드 0 사용)하여 장치의 최대 전송 속도를 결정하고 ATA 컨트롤러를 구성할 수 있다.

}

| 100 ns

| 콤팩트플래시 2.0

|-

| 모드 6

|

| 80 ns

| 콤팩트플래시 2.0

|}

2. 1. PIO 모드의 한계와 DMA

PIO 모드 5[4]는 초당 22 MB의 동작 속도로 제안되었으나 하드 디스크에 구현된 적은 없었다. 그 이유는 해당 시간의 CPU가 제안된 PIO 5 타이밍으로 하드 디스크를 대기하느라 제 기능을 하지 못할 수 없고, DMA 표준이 궁극적으로 이를 제거했기 때문이다. 이 모드를 지원하는 하드 드라이브가 제조된 적이 없지만, 일부 마더보드 제조업체들은 바이오스를 통해 예비 지원하고 있다. PIO 모드 5는 CF-to-IDE 어댑터를 통해 IDE에 콤팩트플래시 카드를 장착하여 사용할 수 있다.[3]

PIO 인터페이스는 서로 다른 전송 속도에 해당하는 여러 가지 모드로 그룹화된다. 서로 다른 모드 간의 전기 신호는 유사하며, 단지 더 높은 전송 속도를 달성하기 위해 트랜잭션 간의 주기 시간이 감소한다. 모든 ATA 장치는 가장 느린 모드인 모드 0을 지원한다. ATA 드라이브의 정보 레지스터에 접근(모드 0 사용)함으로써 CPU는 장치의 최대 전송 속도를 결정하고 최적의 성능을 위해 ATA 컨트롤러를 구성할 수 있다.

PIO 모드는 데이터 트랜잭션을 구성하고 데이터를 전송하기 위해 많은 CPU 오버헤드를 필요로 한다. 이러한 비효율성으로 인해 성능을 향상시키기 위해 DMA(궁극적으로는 UDMA) 인터페이스가 만들어졌다. PIO 전송을 구현하는 데 필요한 간단한 디지털 로직은 이 전송 방식을 오늘날에도 유용하게 만든다. 특히 임베디드 시스템과 같이 높은 전송 속도가 필요하지 않거나, 필드 프로그램 가능 게이트 어레이(FPGA) 칩과 같이 PIO 모드를 사용해도 성능 저하가 크지 않은 경우에 유용하다.

컴팩트 플래시 사양 2.0에서 PIO 모드 5와 6이 추가적인 고급 타이밍 모드로 정의되었다. 이들은 컴팩트 플래시에 특화되어 있다.

PIO 모드
모드최대 전송 속도 (MB/초)최소 순환 시간규격 정의 표준
모드 0600 nsATA-1
모드 1383 nsATA-1
모드 2240 nsATA-1
모드 3180 nsATA-2
모드 4120 nsATA-2
모드 5{{cvt|}
}

| 100 ns

| 컴팩트 플래시 2.0

|-

| 모드 6

|

| 80 ns

| 컴팩트 플래시 2.0

|}

2. 2. 콤팩트플래시와 PIO 모드 5, 6

콤팩트플래시 규격 2.0에는 두 개의 추가적인 고급 타이밍 모드가 정의되어 있으며, PIO 모드 5와 6을 제공한다.

PIO 모드
모드최대 전송 속도 (MB/s)최소 사이클 시간사양 정의 표준
모드 0600 nsATA-1
모드 1383 nsATA-1
모드 2240 nsATA-1
모드 3180 nsATA-2
모드 4120 nsATA-2
모드 5{{cvt|}
PIO 모드
모드최대 전송 속도 (MB/초)최소 순환 시간규격 정의 표준
모드 520100ns콤팩트플래시 2.0
모드 62580ns콤팩트플래시 2.0



PIO 모드 5[4]는 초당 22 MB의 동작 속도로 제안되었으나, 당시 CPU 성능 문제와 DMA 표준의 등장으로 하드 디스크에는 구현되지 않았다. 이 모드를 지원하는 하드 드라이브는 제조된 적이 없지만, 일부 메인보드 제조업체들은 바이오스를 통해 예비 지원을 제공했다. PIO 모드 5는 CF-to-IDE 어댑터를 통해 IDE에 콤팩트플래시 카드를 장착하여 사용할 수 있다.

PIO 모드 5는 22MB/s의 속도로 작동하도록 제안되었지만,[3] 당시 CPU가 제안된 PIO 5 타이밍에서 하드 디스크를 기다리느라 성능이 저하될 것이고, 결국 DMA 표준이 이를 대체했기 때문에 하드 디스크에서는 구현되지 않았다. 이 모드를 지원하도록 제작된 하드 디스크 드라이브는 없었지만, 일부 마더보드 제조업체는 선제적으로 이에 대한 BIOS 지원을 제공했다. PIO 모드 5는 CF-to-ATA 어댑터를 통해 ATA에 연결된 컴팩트 플래시 카드와 함께 사용할 수 있다.

3. 장치 호환

모든 장치가 PIO 타이밍과 호환되는 것은 아니다. 제네시스 로직사의 GL819 칩을 사용하는 샌디스크 SDDR-89 12-in-1 카드 리더 장치를 예로 들 수 있는데, 이 칩은 대부분의 PIO 모드와 조금 다르다.[1]

PIO 모드12346
GL819 타이밍399ns249ns183ns133ns83ns
ATA 및 CF 규격 타이밍383ns240ns180ns120ns80ns


참조

[1] 서적 Computer Architecture and Organization McGraw-Hill International Book Company 1978
[2] 서적 Computer Organization and Architecture Pearson 2012
[3] 웹사이트 Proposed 22 MByte/Sec ATA Timing Extension for ATA-3 https://www.t10.org/[...] Technical Committee T10 (X3T10) 1995-01-10
[4] 문서 Proposed 22 MByte/Sec ATA Timing Extension For ATA-3 ftp://ftp.t10.org/t1[...] 1995-01



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com